package com.crm.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 *
 * </p>
 *
 * @author zhangzhen
 * @since 2025-05-13
 */
@Getter
@Setter
@ToString
@TableName("company")
@ApiModel(value = "Company对象", description = "")
public class Company implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "c_id", type = IdType.AUTO)
    private Integer cId;

    /**
     * 公司代码
     */
    @ApiModelProperty("公司代码")
    @TableField("company_code")
    private String companyCode;

    /**
     * 公司名称
     */
    @ApiModelProperty("公司名称")
    @TableField("company_name")
    private String companyName;

    /**
     * 公司简称
     */
    @ApiModelProperty("公司简称")
    @TableField("company_short_name")
    private String companyShortName;

    /**
     * 结算类型 1：预付 2:月结
     */
    @TableField("cash_type")
    @ApiModelProperty("结算类型 1：预付 2:月结")
    private Byte cashType;

    /**
     * 1:待审核;2:未通过审核;3:已通过审核;4:停用
     */
    @TableField("company_status")
    @ApiModelProperty("1:待审核;2:未通过审核;3:已通过审核;4:停用")
    private Byte companyStatus;

    /**
     * 公司注册状态 0:客户注册 1:开户
     */
    @TableField("register_status")
    @ApiModelProperty("公司注册状态 0:客户注册 1:开户")
    private Byte registerStatus;

    /**
     * 公司地址
     */
    @ApiModelProperty("公司地址")
    @TableField("company_address")
    private String companyAddress;

    /**
     * 公司网址
     */
    @ApiModelProperty("公司网址")
    @TableField("company_domain")
    private String companyDomain;

    /**
     * 客户订单每日生成记录
     */
    @ApiModelProperty("客户订单每日生成记录")
    @TableField("company_order_cnt")
    private String companyOrderCnt;

    /**
     * 客户ASN每日生成记录
     */
    @TableField("company_asn_cnt")
    @ApiModelProperty("客户ASN每日生成记录")
    private String companyAsnCnt;

    /**
     * 结算币种
     */
    @ApiModelProperty("结算币种")
    @TableField("company_currency")
    private String companyCurrency;

    /**
     * 移动电话
     */
    @ApiModelProperty("移动电话")
    @TableField("company_sale_mobile_phone")
    private String companySaleMobilePhone;

    @TableField("company_sale_phone")
    private String companySalePhone;

    /**
     * 业务员
     */
    @ApiModelProperty("业务员")
    @TableField("company_saler_user_id")
    private Integer companySalerUserId;

    @TableField("company_saler_user")
    private String companySalerUser;

    /**
     * 移动电话
     */
    @ApiModelProperty("移动电话")
    @TableField("company_cser_mobile_phone")
    private String companyCserMobilePhone;

    @TableField("company_cser_phone")
    private String companyCserPhone;

    /**
     * 公司联系人qq
     */
    @TableField("company_qq")
    @ApiModelProperty("公司联系人qq")
    private Integer companyQq;

    @TableField("company_cser_user")
    private String companyCserUser;

    /**
     * token
     */
    @TableField("app_token")
    @ApiModelProperty("token")
    private String appToken;

    /**
     * key
     */
    @TableField("app_key")
    @ApiModelProperty("key")
    private String appKey;

    @TableField("company_update_time")
    private LocalDate companyUpdateTime;

    /**
     * 最后到账日期
     */
    @ApiModelProperty("最后到账日期")
    @TableField("company_bill_date")
    private LocalDate companyBillDate;

    /**
     * 系统公司代码,用于OMS跟WMS对接.注册时自动产生
     */
    @TableField("company_code_sys")
    @ApiModelProperty("系统公司代码,用于OMS跟WMS对接.注册时自动产生")
    private String companyCodeSys;

    /**
     * 真实姓名
     */
    @TableField("cu_name")
    @ApiModelProperty("真实姓名")
    private String cuName;

    /**
     * 客户等级
     */
    @ApiModelProperty("客户等级")
    @TableField("client_grade_id")
    private Integer clientGradeId;

    /**
     * 运营平台，分号隔开
     */
    @ApiModelProperty("运营平台，分号隔开")
    @TableField("operation_platform")
    private String operationPlatform;

    /**
     * 公司联系电话
     */
    @ApiModelProperty("公司联系电话")
    @TableField("contact_number")
    private String contactNumber;

    /**
     * 公司备注
     */
    @ApiModelProperty("公司备注")
    @TableField("company_note")
    private String companyNote;

    /**
     * 客户推荐码
     */
    @ApiModelProperty("客户推荐码")
    @TableField("recommended_code")
    private String recommendedCode;

    /**
     * 推荐人的ID
     */
    @ApiModelProperty("推荐人的ID")
    @TableField("recommended_person_id")
    private Integer recommendedPersonId;

    /**
     * 客户是否可以体验套餐标志  Y:可以体验   N:不能体验
     */
    @TableField("company_experience_sign")
    @ApiModelProperty("客户是否可以体验套餐标志  Y:可以体验   N:不能体验")
    private String companyExperienceSign;

    /**
     * 营业执照
     */
    @ApiModelProperty("营业执照")
    @TableField("business_licence")
    private String businessLicence;

    /**
     * 工商注册号
     */
    @ApiModelProperty("工商注册号")
    @TableField("business_register")
    private String businessRegister;

    /**
     * 邮政编码
     */
    @TableField("zip_code")
    @ApiModelProperty("邮政编码")
    private String zipCode;

    /**
     * 身份证_正面
     */
    @TableField("id_card_up")
    @ApiModelProperty("身份证_正面")
    private String idCardUp;

    /**
     * 身份证_反面
     */
    @ApiModelProperty("身份证_反面")
    @TableField("id_card_down")
    private String idCardDown;

    /**
     * 身份证号
     */
    @TableField("id_number")
    @ApiModelProperty("身份证号")
    private String idNumber;

    /**
     * 开户行
     */
    @TableField("bank")
    @ApiModelProperty("开户行")
    private String bank;

    /**
     * 开户网点（地址）
     */
    @TableField("bank_addr")
    @ApiModelProperty("开户网点（地址）")
    private String bankAddr;

    /**
     * 开户名
     */
    @ApiModelProperty("开户名")
    @TableField("bank_user_name")
    private String bankUserName;

    /**
     * 银行账户
     */
    @ApiModelProperty("银行账户")
    @TableField("bank_accout")
    private String bankAccout;

    /**
     * 公司简介
     */
    @ApiModelProperty("公司简介")
    @TableField("company_introduce")
    private String companyIntroduce;

    /**
     * 银行开户许可证
     */
    @TableField("license")
    @ApiModelProperty("银行开户许可证")
    private String license;

    /**
     * 法人代表
     */
    @ApiModelProperty("法人代表")
    @TableField("company_legal_preson")
    private String companyLegalPreson;

    /**
     * 地址详情
     */
    @ApiModelProperty("地址详情")
    @TableField("company_detail")
    private String companyDetail;

    /**
     * 国家
     */
    @ApiModelProperty("国家")
    @TableField("company_country")
    private String companyCountry;

    /**
     * 省份
     */
    @ApiModelProperty("省份")
    @TableField("company_province")
    private String companyProvince;

    /**
     * 城市
     */
    @ApiModelProperty("城市")
    @TableField("company_city")
    private String companyCity;

    /**
     * 公司仓库使用方案：0 使用平台仓库 1 使用自建仓库
     */
    @TableField("company_warehouse_use_situation")
    @ApiModelProperty("公司仓库使用方案：0 使用平台仓库 1 使用自建仓库")
    private Byte companyWarehouseUseSituation;

    /**
     * 1供应商  2|分销商
     */
    @TableField("company_type")
    @ApiModelProperty("1供应商  2|分销商")
    private Byte companyType;

    /**
     * 退货地址
     */
    @ApiModelProperty("退货地址")
    @TableField("return_address")
    private String returnAddress;

    /**
     * 退货联系人
     */
    @ApiModelProperty("退货联系人")
    @TableField("return_person")
    private String returnPerson;

    /**
     * 退货联系方式
     */
    @ApiModelProperty("退货联系方式")
    @TableField("return_contact")
    private String returnContact;

    /**
     * 是否删除：0否，1是
     */
    @TableField("is_deleted")
    @ApiModelProperty("是否删除：0否，1是")
    private Byte isDeleted;

    /**
     * 平台店铺名称
     */
    @ApiModelProperty("平台店铺名称")
    @TableField("platform_shop")
    private String platformShop;

    /**
     * paypal账号
     */
    @ApiModelProperty("paypal账号")
    @TableField("paypal_account")
    private String paypalAccount;

    /**
     * 审核时间
     */
    @ApiModelProperty("审核时间")
    @TableField("verify_time")
    private LocalDateTime verifyTime;

    /**
     * 结算币种
     */
    @ApiModelProperty("结算币种")
    @TableField("settlement_currency")
    private String settlementCurrency;

    /**
     * 佣金有效期
     */
    @ApiModelProperty("佣金有效期")
    @TableField("referrer_expires")
    private LocalDateTime referrerExpires;

    /**
     * 推荐人代码
     */
    @ApiModelProperty("推荐人代码")
    @TableField("referrer_code")
    private String referrerCode;

    /**
     * 分利比例
     */
    @ApiModelProperty("分利比例")
    @TableField("distribute_rate")
    private BigDecimal distributeRate;

    @TableField("erp_account")
    private String erpAccount;

    /**
     * 授权委托书
     */
    @ApiModelProperty("授权委托书")
    @TableField("authorization")
    private String authorization;

    /**
     * 是否自营供应商 1是 0否
     */
    @TableField("company_sale_tye")
    @ApiModelProperty("是否自营供应商 1是 0否")
    private Byte companySaleTye;

    /**
     * 代理供应商代码
     */
    @ApiModelProperty("代理供应商代码")
    @TableField("company_agent_code")
    private String companyAgentCode;

    /**
     * 是否全平台版本用户 ：1是  0否
     */
    @TableField("is_all_platform")
    @ApiModelProperty("是否全平台版本用户 ：1是  0否")
    private Byte isAllPlatform;

    /**
     * 图片是否转oss
     */
    @TableField("is_img_oss")
    @ApiModelProperty("图片是否转oss")
    private Byte isImgOss;

    /**
     * 认证类型 0 未认证 1 企业 2 个人
     */
    @TableField("auth_type")
    @ApiModelProperty("认证类型 0 未认证 1 企业 2 个人")
    private Byte authType;

    /**
     * 用户类型认证状态 0 未认证 1 待认证 2 认证通过 3 不通过
     */
    @TableField("auth_verify_state")
    @ApiModelProperty("用户类型认证状态 0 未认证 1 待认证 2 认证通过 3 不通过")
    private Byte authVerifyState;

    /**
     * 认证失败原因
     */
    @ApiModelProperty("认证失败原因")
    @TableField("auth_verify_error")
    private String authVerifyError;

    /**
     * 销售类目
     */
    @ApiModelProperty("销售类目")
    @TableField("marketing_category_id")
    private Integer marketingCategoryId;

    /**
     * 用户头像
     */
    @ApiModelProperty("用户头像")
    @TableField("face_image")
    private String faceImage;

    /**
     * 产品发布数量
     */
    @TableField("publish_num")
    @ApiModelProperty("产品发布数量")
    private Integer publishNum;

    /**
     * 护照
     */
    @ApiModelProperty("护照")
    @TableField("passport")
    private String passport;

    /**
     * kyc认证 0 未认证 1 待认证 2 认证失败 3 已认证
     */
    @TableField("is_kyc")
    @ApiModelProperty("kyc认证 0 未认证 1 待认证 2 认证失败 3 已认证")
    private Byte isKyc;

    /**
     * KYC认证异常提示
     */
    @TableField("kyc_error")
    @ApiModelProperty("KYC认证异常提示")
    private String kycError;
}
